package cn.wx.entity;

import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import lombok.extern.slf4j.Slf4j;

import java.io.Serializable;
import java.util.List;


/**
 * 门户服务响应前端统一数据格式封装。
 * @Auther: yinguibing
 * @Date: 2020-07-13 09:49
 * @Description: 统一响应处理。
 */
@Slf4j
@Data
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class ApiResponse implements Serializable {

	private static final long serialVersionUID = -5566698145754452496L;

	/**业务处理结果**/
	private JSONObject data;

	/**
	 * 解析今日百度天气
	 * @param objectClass
	 * @return
	 * @param <T>
	 */
	public static  <T> T parseBaiduNowData(String sourceData,Class<T> objectClass) {
		if(null != objectClass){
			JSONObject jsonObject = JSONObject.parseObject(sourceData).getJSONObject("result").getJSONObject("now");
			return JSON.parseObject(JSON.toJSONString(jsonObject),objectClass) ;
		}else {
			return null ;
		}
	}

	/**
	 * 解析今日详细百度天气
	 * @param objectClass
	 * @return
	 * @param <T>
	 */
	public static  <T> List<T> parseBaiduForecastsData(String sourceData,Class<T> objectClass) {
		if(null != sourceData){
			JSONArray jsonArray = JSONObject.parseObject(sourceData).getJSONObject("result").getJSONArray("forecasts");
			return JSON.parseArray(JSON.toJSONString(jsonArray),objectClass) ;
		}else {
			return null ;
		}
	}


	/**
	 * 解析天行的数据
	 * @param objectClass
	 * @return
	 * @param <T>
	 */
	public static  <T> List<T> parseTianData(String sourceData, Class<T> objectClass) {
		if(null != sourceData){
			JSONArray newslist = JSONObject.parseObject(sourceData).getJSONArray("newslist");
			return JSON.parseArray(JSON.toJSONString(newslist),objectClass) ;
		}else {
			return null ;
		}
	}




}